package day02.ex;

import java.util.Arrays;

import org.junit.Test;

public class Exercise {
	@Test
	public void test() {
//		int[] array={2,8,10,12,33};
//		System.out.println(isSorted(array));
//		int [] array2={2,4,3,9,10};
//		System.out.println(isSorted(array2));
		//int []array3={2,8,10,12,33};
		//reverse(array3);
		//int []array4={2,8,10,12,33};
		//shuffle(array4);
		int []array5={8,9,9,9,9,8};
		System.out.println(hasContinuousFour(array5));
		int []array6= {8,9,9,9,8};
		System.out.println(hasContinuousFour(array5));
		
	}
	
	//写一个方法，传入一个整型数组，判断数组里面所有的元素是否已排序
	public static boolean isSorted(int[] numbers) {
		boolean flag=true;
		for(int i=0;i<numbers.length-1;i++) {
			if(numbers[i]>numbers[i+1]) {
				flag=false;
				return flag;
				
			}
			
		}		
		return flag;
	}
	/*写一个方法，传入一个整型数组，方法内部将数组元素倒置。
方法定义如下：public static void reverse(int[] numbers);
传入数组{2,8,10,12,33}时，经过倒置操作之后，变成 {33， 12， 10， 8， 2}
*/
	public static void reverse(int[] numbers) {
		int temp;
		int n=numbers.length-1;
		System.out.println(Arrays.toString(numbers));
		for(int i=0;i<n/2;i++) {
			
			temp=numbers[i];
			numbers[i]=numbers[n-i];
			numbers[n-i]=temp;
			
		}
		System.out.println(Arrays.toString(numbers));

		
	};
	/*数组打乱顺序
写一个方法，传入一个排好序整型数组，方法会将数组元素的顺序随机互换：
遍历数组，对每一个下标为i的元素，随机产生一个新的下标j(在数组长度范围之内)，然后将i和j位置的元素互换。
方法定义如下：public static void shuffle(int[] numbers);
传入数组{2,8,10,12,33}
*/
	public static void shuffle(int[] numbers) {
		int n=numbers.length-1;
		int temp;
		System.out.println(Arrays.toString(numbers));
		for(int i=0;i<n;i++) {
			temp=numbers[i];
			numbers[i]=numbers[(int )(Math.random()*n)+1];
			numbers[(int )(Math.random()*n)+1]=temp;
			
		}
		System.out.println(Arrays.toString(numbers));
	}
	/*连续相等的数判断
写一个方法，传入一个整型数组，判断数组里面是否有4个连续相等的整数。
方法定义如下：public static boolean hasContinuousFour(int[] numbers);
传入数组{8,9,9,9,9,8}时，返回true
传入数组{8,9,9,9,8}时，返回false
*/
	public static boolean hasContinuousFour(int[] numbers) {
		boolean flag=true;
		for(int i=0;i<numbers.length-1;i++) {
			if(numbers[i]==numbers[i+1]&&numbers[i]==numbers[i+2]
							) {
				if(numbers[i]==numbers[i+3]) {
					
					System.out.println(i);
					System.out.println("判断");
					System.out.println(numbers[i]);
					return flag;
				}
				
				
			}
			if(i+3>numbers.length-1) {
				flag=false;
				return flag;
			}
			
		}
		return flag;
		
		
	}
}
